<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <!-- <input type="text" v-model="msg"> -->

        <button @click="fn1">点我取值</button>
        <button @click="fn2">点我赋值</button>
      </div>
    <script src="./vue.js"></script>
    <script>
        new Vue({
            el: "#app",
            computed: {
                // 这种写法是计算属性的简写形式--也是经常用的形式
                // 简写形式：只能对计算属性取值，不能对计算属性赋值
                // msg () {
                //     return 'hello'
                // }

                // 完整写法：既能对计算属性取值，也能对计算属性赋值
                msg: {
                    // 对计算属性赋值会调用下面的set函数
                    // 赋值一般有参数
                    // 参数就是给过来的数据
                    set (val) {
                        console.log('msg被赋值了-set被调用', val)
                    },
                    // 对计算属性取值会调用下面的get函数
                    // 取值一般有返回值
                    get () {
                        console.log('msg的get被调用了')
                        return 'hello'
                    }
                }
            },
            methods: {
                fn1 () {
                    // 取出msg的值，并打印出来 --- 对msg进行取值
                    console.log(this.msg)
                },

                fn2 () {
                    // 给msg进行赋值
                    this.msg = '你好'
                }
            }
        })
    </script>
</body>
</html>